hadoop集群搭建
这里的集群只是一个单点登录的集群,没有做到正真的HA高可用,只是一个namenode节点多个datanode节点
基本思路:
- 先在一个节点上配置好hadoop集群
- 将配置好的hadoop复制给其他的节点机
- 配置ssh免密码登录(这里是为了第四步)
- namenode启动整个集群(通过ssh启动其他datanode节点)
我这里准备用三个节点机作演示,使用hadoop-2.9.0版本
- 10.100.101.127(namenode节点,resourceManager节点)
- 10.100.102.127(datanode节点,nodeManager节点)
- 10.100.103.127(datanode节点,nodeManager节点)
搭建前环境准备
hadoop是java语言写的,运行hadoop依赖jvm,需要先安装jdk,配置环境变量JAVA_HOME
,三个节点上环境和安装目录需一致
[root@localhost hadoop]# echo $JAVA_HOME
/data/software/jdk1.8.0_121
开始搭建
第一步
http://hadoop.apache.org/rele...,将安装包上传到10.100.101.127机器上,解压
# 使用secureCRT客户端工具上传
rz -bye
tar -zxvf hadoop-2.9.0.tar.gz
第二步
修改配置文件(6个),配置文件在$HADOOP_HOME/etc/hadoop/文件夹下
hadoop-env.sh
export JAVA_HOME=/data/software/jdk1.8.0_121
core-site.xml
```
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://172.18.113.120:9000</value>
</property>
</configuration>
```
hdfs-site.xml
```
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<!-- 默认为true,通过主机名配置,如果是通过ip配置,这里需要配置false -->
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
</configuration>
```
yarn-site.xml
```
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>10.100.101.127</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
```
mapred-site.xml
```
# 这个配置文件默认没有,但是有个模板可以参考
[root@localhost hadoop]# cp mapred-site.xml.template mapred-site.xml
```
```
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
```
slaves
这里配置的是datanode节点,一个节点占一行,hadoop将这个文件改成了`workers`
```
10.100.101.127
10.100.102.127
10.100.103.127
```
第三步
配置ssh免登录
通过namenode自动启动datanote,所以要配置namenode通过ssh连接datanode不需要密码,如果namenode节点同时担任一个datanode节点,那么也要配置namenode在ssh自己的时候也要免密码登录
# 一路回车
ssh-keygen
ssh-copy-id 10.100.102.127
ssh-copy-id 10.100.103.127
ssh-copy-id 10.100.101.127
第四步
复制文件给其他节点,启动集群
# 把配置好的hadoop给其他两个节点各复制一份,注意jdk环境要一致
scp -r hadoop-2.9.0 10.100.102.127:///home/
scp -r hadoop-2.9.0 10.100.103.127:///home/
# 首次启动需要先在 Master 节点执行 NameNode 的格式化,之后的启动不需要再去进行:
bin/hdfs namenode -format
# 启动dfs Default HTTP port is 50070
sbin/start-dfs.sh
# 启动yarn Default HTTP port is 8088
sbin/start-yarn.sh
# 启动jobhistory Default HTTP port is 19888.
sbin/mr-jobhistory-daemon.sh start historyserve
# 通过命令 hdfs dfsadmin -report 查看 DataNode 是否正常启动
bin/hdfs dfsadmin -report
...
Live datanodes (3):
...
查看进程
# namenode上的进程数10.100.101.127
# jps
24496 DataNode
25107 NodeManager
24358 NameNode
24998 ResourceManager
25494 JobHistoryServer
24679 SecondaryNameNode
25591 Jps
22442 Bootstrap
# datanode上的进程数10.100.102.127/10.100.103.127
# jps
24657 Jps
24338 DataNode
24518 NodeManager
23342 Bootstrap
关闭集群同样也是在Master节点上执行
$stop-yarn.sh
$stop-dfs.sh
$mr-jobhistory-daemon.sh stop historyserver
参考文献:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。